﻿$.autoPageAcs = function(t,o){
	var g={
		init:function(){
			o = $.extend({
				
			},o);
			g.loadPage();
			//g.bindEvent();
		}

		,loadPage:function(){
			$.ajax({
				url:'acs.xml'
				,dataType:'xml'
				,success:g.initPage
			});
		}

		,initPage:function(data){
			var html=[];
			$('group',data).each(function(){
				var name=$(this).attr('name');
				html.push('<table style="margin:24px;"><tr><td align="center" valign="top"><img src="images/'+name+'.png" /><h3 domain="l10n" msgid="'+name+'">'+name+'</h3></td><td><table class="param">');
				$('item',this).each(function(){
					var name=$('name',this).text();
					var type=$('type',this).text();
					var unit=$('unit',this).text();
					var input='';
					switch(type){
						case 'string':
							input='<input type="text" datatype="string" id="'+name+'" name="'+name+'"/>';
						break;
						case 'number':
							input='<input type="text" datatype="number" id="'+name+'" name="'+name+'"/>';
						break;
						case 'boolean':
							input='<input type="checkbox" datatype="boolean" id="'+name+'" name="'+name+'"/>';
						break;
					}
					html.push('<tr><th width="200" domain="l10n" msgid="'+name+'">'+name+'</th><td>'+input+'</td><td domain="l10n" msgid="'+unit+'">'+unit+'</td></tr>');
				});
				html.push('</table></td></tr></table><hr/>');
			});
			$('body').css({overflow:'auto'}).html(html.join(''));
			g.bindEvent();
			g.loadData();
			loadLang();
		}

		,bindEvent:function(){
			$('input').change(function(){
				g.save(this);
			});
		}

		,loadData:function(){
			//NBI.getSystemSettings(g.parseData);
		}


		,parseData:function(data){
			$('NBIResponse Items Item',data).each(function(){
				var id=$('id',this).text();
				var name=$('name',this).text();
				var v=$('value',this).text();
				var $input=$('#'+name);
				$input.attr('_id',id);
				if($input.attr('datatype')==='boolean'){
					if(v==='1')$input.attr('checked','checked');
					else $input.removeAttr('checked','checked');
				}else{
					$input.val(v);
				}
			});
			loadLang();
		}

		,save:function(input){
			if(!g.validate(input))return;
			var $input=$(input);
			var id=$input.attr('_id');
			var type=$input.attr('datatype');
			var v=(type==='boolean')?($input.is(':checked')?1:0):$input.val();
			NBI.setSystemSettings({
				data:{
					id:id
					,value:v
				}
			});
		}


		//验证
		,validate:function(input){
			var $input=$(input);
			var $tr=$input.parent().parent();
			var type=$input.attr('datatype');
			var v=(type==='boolean')?($input.is(':checked')?'1':'0'):$input.val();
			if(v.replace(/\s/g,'')===''){
				$tr.addClass('error');
				return false;
			}
			if(type==='number'){
				if(!/^[1-9]\d*$/.test(v)){
					$tr.addClass('error');
					return false;
				}
			}
			$tr.removeClass('error');
			return true;
		}


	}
	g.init();
	return g;
}